package model;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

/**
 * Clase Catalogo
 * @author Grupo-03
 * @version 0.1, 08/04/14 
 *
 */

public class Catalogo {
	
	private long id;
	private Collection<Contenido> contenidos;
	
	/**
	 * Constructor
	 */
	public Catalogo(){
		this.contenidos = new HashSet<Contenido>();
	}
	
	/**
	 * Setter & Getter
	 */
	
	public Collection<Contenido> getContenidos(){
		return this.contenidos;
	}
	public void setContenidos(Collection<Contenido> contenidos){
		this.contenidos = contenidos;
	}
	
	/**
	 * 
	 * @param contenido Agrega un contenido al catalogo: pelicula o serie
	 */
	public void agregar(Contenido contenido){
		this.contenidos.add(contenido);
	}
	
	/**
	 * @return Devuelve una coleccion con todas las peliculas en el catalogo
	 */
	public Collection<Pelicula> getPeliculas(){
		HashSet<Pelicula> peliculas = new HashSet<Pelicula>();
		Iterator<Contenido> iter = this.contenidos.iterator();
		while (iter.hasNext()){
			Contenido contenido = iter.next();
			if (contenido.esPelicula())
				peliculas.add((Pelicula)contenido);
		}
		return peliculas;
	}
	
	/**
	 * @return Devuelve una coleccion con todas las series en el catalogo
	 */
	public Collection<Serie> getSeries(){
		HashSet<Serie> series = new HashSet<Serie>();
		Iterator<Contenido> iter = this.contenidos.iterator();
		while (iter.hasNext()){
			Contenido contenido = iter.next();
			if (contenido.esSerie())
				series.add((Serie) contenido);
		}
		return series;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}
}
